#include <bits/stdc++.h>
using namespace std;
int n, t;
int a[100005], b[100005];
int ans = 0;

int main() {
  cin >> n >> t;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
    a[i] += a[i - 1];
  }
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
    b[i] += b[i - 1];
  }
  int yu;                     // 剩余的时间
  int p = n;                     // b游戏可以过几关
  for (int i = 0; i <= n; i++) { // 枚举a游戏通过从0关至n关的情况
    yu = t - a[i];
    if (yu < 0)
      break; // 处理越界问题
    while (b[p] > yu) {
      p--;
    }
    ans = max(ans, i + p); // 把答案设为最多关数
  }
  cout << ans;
  return 0;
}